// Cliente.cc

#include "ServidorPrincipal.h"

void usage() {
	cout << "Usage: Cliente <puerto-nameserver> <nombre-servidor-principal> <abreviatura-pais> ej: Cliente 1234 puntos.es ESP" << endl;
	exit(1);
}

int main(int argc, char** argv) {

	if (argc != 4) {
		usage();
	}
	PracticaCaso::TcpClient client;
	
	client.connect("127.0.0.1", atoi(argv[1]));
	
	//dnsName a resolver
	string dnsName = argv[2];
	//Cliente manda un mensaje con el dnsName a resolver
	client.send(dnsName);
	//Se recibe la dirección y puerto
	string ipAddressAndPort = client.receive();
	
		if (ipAddressAndPort.find("ERROR") == 0) {
	cout << "The DNS name " << dnsName << " could not be resolved." << endl;
	} else {
	
	//PracticaCaso::TcpClient * client = new PracticaCaso::TcpClient();
	cout << "The DNS name: " << dnsName << " corresponds to: " << ipAddressAndPort << endl;
	//cliente se conecta a la dirección y puerto recibidas
	client.connect(ipAddressAndPort.substr(0, ipAddressAndPort.find(":")), atoi((ipAddressAndPort.substr(ipAddressAndPort.find(":")+1)).c_str()));
	}
	
	
	string cadena = argv[3];
	string aux;
	string puntos;

	cout << "Numero medio de canciones por disco: ";
	cin >> aux;
	cadena = cadena + " " + aux;
	cout << "Numero de discos totales: ";
	cin >> aux;
	cadena = cadena + " " + aux;
	cout << "Numero de colaboraciones realizadas: ";
	cin >> aux;
	cadena = cadena + " " + aux;

	cout << "Enviando Datos al Servidor: " + cadena << endl;
	client.send(cadena);
	puntos = client.receive();
	if (puntos.find("ERROR") == 0) {
		cout << "La abreviacion " << argv[1] << " no se encuentra" << endl;
	} else {
		cout << "El promedio es de " << puntos << " puntos por hacer " << argv[1] << endl;
	}
	client.close();
}

